insert into asm_rate_negative_0
  select utente,codice_disposizione_incasso,data_emissione_documento,importo_rata,importo_incassato,stato_incassato,codice_classe_spedizione
  from(
  
  select to_number(substr(r.CODICE_RIF_UTENTE,2,8)) utente,
  r.codice_disposizione_incasso,
  r.data_emissione_documento,
  case when i.data_incasso is null and r.stato_incasso_rata = 'T' then 'T' else 
     case when  i.data_incasso > to_date (^DATA RIFERIMENTO gg/mm/aaaa;A;ALFANUMERICO^^,'dd/mm/yyyy') then 'N'  else r.stato_incasso_rata end end stato_incassato,
  case when i.data_incasso is null and r.stato_incasso_rata = 'T' then r.importo_rata else 
     case when  i.data_incasso > to_date (^DATA RIFERIMENTO gg/mm/aaaa;A;ALFANUMERICO;1^^,'dd/mm/yyyy') then 0  else r.importo_incassato_rata end end  importo_incassato,
   r.importo_rata,ca.CODICE_CLASSE_SPEDIZIONE 
 
 
  
  from rate r,incassi i,contratti_aggregazioni ca
  where r.codice_gestione = 'ASM' and  r.codice_origine_disposizione = 'B'  and stato_incasso_rata in('N','P','T')
  and r.DATA_EMISSIONE_DOCUMENTO<= to_date (^DATA RIFERIMENTO gg/mm/aaaa;A;ALFANUMERICO;1^^,'dd/mm/yyyy')
  and i.CODICE_GESTIONE(+) = r.codice_gestione
  and i.CODICE_ORIGINE_DISPOSIZIONE(+) = r.codice_origine_disposizione
  and i.CODICE_DISPOSIZIONE_INCASSO(+) = r.CODICE_DISPOSIZIONE_INCASSO
  --and i.DATA_INCASSO(+) <= to_date ('31122009','ddmmyyyy')
  and i.NUMERO_INCASSO(+) = r.NUMERO_RATA
  and i.PROGRESSIVO_DISPOSIZIONE(+)= r.PROGRESSIVO_DISPOSIZIONE
  and r.FLAG_DOCUMENTO_EMESSO <> 'N'
  and ca.codice_utente = to_number(substr(r.CODICE_RIF_UTENTE,2,8))
  
  ) where importo_rata <> importo_incassato